The software industry is a global business whose markets encompass various countries, many of which have different languages. For software vendors who intend to ship product into foreign countries, the process of localizing software into different languages can often only begin after the core software development cycle has ended. Vendors have often been unable to translate and then test translations before code is released to those foreign clients. Translated applications may be delivered for example to non-U.S. clients several months later than original US code.
In the industry, the standard approach to delivering a translated localized product is consequently to translate and package each localized product individually. The release of localized products may further be prioritized by importance of the target market. Thus, there may be individually packaged products of productivity software for Germany, Thailand and other countries or markets. The German market may have a higher priority than the Thai or other market. Hence, the German product may be released simultaneously or shortly after the U.S. product, while the Thai or other product may be released months later. This is called a tiered approach.
There are several downsides to the tiered approach. Individually packaged products may often have different defects. Having a set of differing versions of code may make it more difficult to troubleshoot and resolve issues. If an issue is identified and resolved, it may only be resolved for one individual language package. The tiered approach may also require the localization team to spend months or longer with one product at a time, rather than delivering all localized products simultaneously. Development resources may therefore be taken away from subsequent releases.
Another, less common approach to delivering localized software products is to release one core source code version to all customers, and add components that display translations at run time if the source code detects a regional setting that is different from the regional setting of the source code. The advantages to this approach include that only one version of source code needs to be supported and maintained. The translated components may consist largely or only of resource-only dynamic link libraries (dlls) that contain no additional functionality.
Therefore, those components do not require processing time that could have an impact on application performance. Typically, these components do not cause application bugs or issues similar to issues caused by source code. However, even vendors employing this run-time approach usually focus on releasing one localized version after another on a per-product basis, and on a defined schedule. No more than one localized product line may be shipped simultaneously.
A need consequently exists for a translation process that allows for a real time translation release of all available products, without a need to prioritize languages or markets or to schedule staggered releases of the software product.